toward bug 853775
authorcinamod <cinamod>
Tue, 30 Dec 2003 17:22:30 +0000 (17:22 +0000)
committercinamod <cinamod>
Tue, 30 Dec 2003 17:22:30 +0000 (17:22 +0000)
modules/engines/ms-windows/ChangeLog.old
modules/engines/ms-windows/wimp_style.c
modules/engines/ms-windows/xp_theme.c
modules/engines/ms-windows/xp_theme.h
modules/engines/ms-windows/xp_theme_defs.h

index 2e4ea98c8fd80d091573ba23d651a55989b9e081..225a7dcc4cbbe4338337f5bac300bdb28ec898ad 100755 (executable)
@@ -1,3 +1,10 @@
+2003-12-30  Dom Lachowicz <cinamod@hotmail.com>\r
+\r
+       * src/wimp_style.c\r
+       * src/xp_theme.c\r
+       * src/xp_theme.h\r
+       * src/xp_theme_defs.h: Toward 853775, get toolbar button borders correct\r
+       \r
 2003-12-30  Dom Lachowicz <cinamod@hotmail.com>\r
 \r
        * src/wimp_style.c: Fix bug 852354 to my liking\r
index 44033a9bd1b0b39dfe24b394c76aabff4ec61199..3e6c1da3e9bc8c96335e97af12a85eeb9f5fb853 100755 (executable)
@@ -556,7 +556,7 @@ setup_wimp_rc_style(void)
             (font_ptr ? "font_name" : "#"),
             (font_ptr ? font_ptr : " font name should go here"));
   gtk_rc_parse_string(buf);
-  
+
   /* Enable coloring for menu bars. */
   font_ptr = sys_font_to_pango_font (XP_THEME_CLASS_MENU, XP_THEME_FONT_MENU,font_buf, sizeof (font_buf));
   g_snprintf(buf, sizeof (buf),
@@ -568,7 +568,7 @@ setup_wimp_rc_style(void)
             btn_face.green,
             btn_face.blue);
   gtk_rc_parse_string(buf);
-  
+
   /* enable tooltip fonts */
   font_ptr = sys_font_to_pango_font (XP_THEME_CLASS_STATUS, XP_THEME_FONT_STATUS,font_buf, sizeof (font_buf));
   g_snprintf(buf, sizeof (buf),
@@ -582,7 +582,7 @@ setup_wimp_rc_style(void)
             (font_ptr ? "font_name" : "#"),
             (font_ptr ? font_ptr : " font name should go here"));
   gtk_rc_parse_string(buf);
-  
+
   g_snprintf(buf, sizeof (buf),
             "style \"wimp-tooltips\" = \"wimp-default\"\n"
             "{bg[NORMAL] = { %d, %d, %d }\n"
@@ -591,7 +591,7 @@ setup_wimp_rc_style(void)
             tooltip_back.green,
             tooltip_back.blue);
   gtk_rc_parse_string(buf);
-  
+
   /* enable font theming for status bars */
   font_ptr = sys_font_to_pango_font (XP_THEME_CLASS_STATUS, XP_THEME_FONT_STATUS,font_buf, sizeof (font_buf));
   g_snprintf(buf, sizeof (buf),
@@ -603,7 +603,7 @@ setup_wimp_rc_style(void)
             (font_ptr ? font_ptr : " font name should go here"),
             btn_face.red, btn_face.green, btn_face.blue);
   gtk_rc_parse_string(buf);
-  
+
   /* enable coloring for text on buttons
      TODO: use GetThemeMetric for the border and outside border */
   g_snprintf(buf, sizeof (buf),
@@ -636,7 +636,7 @@ setup_wimp_rc_style(void)
             progress_back.blue,
             btn_face.red, btn_face.green, btn_face.blue);
   gtk_rc_parse_string(buf);
-  
+
   /* scrollbar thumb width and height */
   g_snprintf(buf, sizeof (buf),
             "style \"wimp-vscrollbar\" = \"wimp-default\"\n"
@@ -648,7 +648,7 @@ setup_wimp_rc_style(void)
             GetSystemMetrics(SM_CYVTHUMB),
             get_system_metric(XP_THEME_CLASS_SCROLLBAR, SM_CXVSCROLL));
   gtk_rc_parse_string(buf);
-  
+
   g_snprintf(buf, sizeof (buf),
             "style \"wimp-hscrollbar\" = \"wimp-default\"\n"
             "{GtkRange::slider-width = %d\n"
@@ -659,7 +659,7 @@ setup_wimp_rc_style(void)
             GetSystemMetrics(SM_CXHTHUMB),
             get_system_metric(XP_THEME_CLASS_SCROLLBAR, SM_CYHSCROLL));
   gtk_rc_parse_string(buf);
-  
+
   /* radio/check button sizes */
   g_snprintf(buf, sizeof (buf),
             "style \"wimp-checkbutton\" = \"wimp-button\"\n"
@@ -1284,6 +1284,12 @@ draw_box (GtkStyle      *style,
                             width, height, state_type, area))
             return;
         }
+      else if (GTK_IS_TOOLBAR (widget->parent))
+      {
+                   if (xp_theme_draw(window, XP_THEME_ELEMENT_TOOLBAR_BUTTON, style, x, y,
+                                             width, height, state_type, area))
+               return;
+         }
       else
         {
           gboolean is_default = !strcmp (detail, "buttondefault");
@@ -1433,15 +1439,15 @@ draw_box (GtkStyle      *style,
       else if (widget && GTK_IS_SCALE(widget))
        {
          gboolean is_vertical = GTK_IS_VSCALE(widget);
-         
+
          parent_class->draw_box (style, window, state_type, GTK_SHADOW_NONE, area,
                                  widget, detail, x, y, width, height);
-         
+
          if(is_vertical)
            parent_class->draw_box(style, window, state_type, GTK_SHADOW_ETCHED_IN, area, NULL, NULL, (2 * x + width)/2, y, 1, height);
          else
            parent_class->draw_box(style, window, state_type, GTK_SHADOW_ETCHED_IN, area, NULL, NULL, x, (2 * y + height)/2, width, 1);
-         
+
          return;
        }
     }
index aabd27f14bf754add0a47854eccba06bd437cd81..a8bd4a3463b6580d161a5519e329f547503f5d9a 100755 (executable)
@@ -240,7 +240,7 @@ xp_theme_get_handle_by_element (XpThemeElement element)
       klazz = XP_THEME_CLASS_STATUS;
       break;
 
-    case XP_THEME_ELEMENT_TOOLBAR:
+       case XP_THEME_ELEMENT_TOOLBAR_BUTTON:
       klazz = XP_THEME_CLASS_TOOLBAR;
       break;
 
@@ -357,9 +357,22 @@ xp_theme_map_gtk_state (XpThemeElement element, GtkStateType state)
        }
       break;
 
-    case XP_THEME_ELEMENT_TOOLBAR:
-      ret = 1;
-      break;
+       case XP_THEME_ELEMENT_TOOLBAR_BUTTON:
+               switch (state)
+               {
+        case GTK_STATE_ACTIVE:
+          ret =  TS_PRESSED;
+          break;
+        case GTK_STATE_PRELIGHT:
+          ret =  TS_HOT;
+          break;
+        case GTK_STATE_INSENSITIVE:
+          ret =  TS_DISABLED;
+          break;
+        default:
+          ret =  TS_NORMAL;
+               }
+               break;
 
     case XP_THEME_ELEMENT_TAB_PANE:
       ret = 1;
@@ -665,7 +678,7 @@ xp_theme_draw (GdkWindow *win, XpThemeElement element, GtkStyle *style,
   HDC dc;
   GdkDrawable *drawable;
   int part_state;
-  
+
   if (! xp_theme_is_drawable (element))
     return FALSE;
 
index 30e2c6d7045ac5d30bb179587d0db393ef6c20ba..f393b56d9bdd5df73230b39f612ca4fa9542a3b5 100755 (executable)
@@ -83,7 +83,7 @@ typedef enum
   XP_THEME_ELEMENT_REBAR_GRIPPER_H,\r
   XP_THEME_ELEMENT_REBAR_GRIPPER_V,\r
   XP_THEME_ELEMENT_REBAR_CHEVRON,\r
-  XP_THEME_ELEMENT_TOOLBAR,\r
+  XP_THEME_ELEMENT_TOOLBAR_BUTTON,\r
   XP_THEME_ELEMENT_MENU_ITEM,\r
   XP_THEME_ELEMENT_MENU_SEPARATOR,\r
   XP_THEME_ELEMENT_STATUS_GRIPPER,\r
index ff9238d851aa48a80306ab565096d8a2f06de471..4b9ad8e32c57a4da5c2bc064312a41798389a3c8 100644 (file)
@@ -75,6 +75,10 @@ typedef HANDLE HTHEME;
 #define RP_CHEVRON 4
 
 #define TP_BUTTON 1
+#define TS_NORMAL 1
+#define TS_HOT 2
+#define TS_PRESSED 3
+#define TS_DISABLED 4
 
 #define TTSS_NORMAL 1